package com.lhy.mymall.utils;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;

import java.awt.image.BufferedImage;
import java.io.IOException;
import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.sql.SQLOutput;

/**
 * @author: 卢辉宇
 * @date: 2022/12/20 21:31
 * @description: 二维码生成工具类
 */
public class QRCodeGenerator {

    /**
     * 生成二维码图片的静态方法
     * @param text 二维码的内容
     * @param height 高度
     * @param width 宽度
     * @param filePath 保存的路径
     */
    public static void generateQRCodeImage(String text,int height,int width,String filePath) throws WriterException, IOException {

        QRCodeWriter qrCodeWriter = new QRCodeWriter();
        //利用引入的依赖生成bit矩阵
        BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);

        //调用java的文件处理获取到存放二维码图片的地址
        Path path = FileSystems.getDefault().getPath(filePath);

        //利用引入的依赖，把bit矩阵变成图片，并保存到指定位置
        MatrixToImageWriter.writeToPath(bitMatrix,"PNG",path);
    }

}
